      1  /**

      2     This class solves the eight queens problem using backtracking.

      3  */

      4  public class EightQueens

      5  {

      6     public static void main(String[] args)

      7     {

      8        solve(new PartialSolution(0));

      9     }

     10

     11     /**

     12        Prints all solutions to the problem that can be extended from

     13        a given partial solution.

     14        @param sol the partial solution

     15     */

     16     public static void solve(PartialSolution sol)

     17     {

     18        int exam = sol.examine();

     19        if (exam == PartialSolution.ACCEPT)

     20        {

     21           System.out.println(sol);

     22        }

     23        else if (exam == PartialSolution.CONTINUE)

     24        {

     25           for (PartialSolution p : sol.extend())

     26           {

     27              solve(p);

     28           }

     29        }

     30     }

     31  }

     32